﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using saigonbook.Biz;
using System.Text.RegularExpressions;

namespace quanlybansach.Frm
{
    public partial class Frm_nhaxuatban : Form
    {
        public Frm_nhaxuatban()
        {
            InitializeComponent();
        }

        private void Frm_nhaxuatban_Load(object sender, EventArgs e)
        {
            txtmanxb.Enabled = false;
            btnsuanxb.Enabled = false;
            btnxoa.Enabled = false;
            List<BIZ_nhaxuatban> ds = BIZ_nhaxuatban.Select_NhaXuatBan();
            foreach (BIZ_nhaxuatban n in ds)
            {
                dataGridView_NXB.Rows.Add(n.manhaxuatban, n.tennhaxuatban, n.diachi, n.sodienthoai, n.email);
            }
            txtmanxb.Text = BIZ_nhaxuatban.laymanhaxuatban().ToString();
        }

        private bool IsNumber(string pText)
        {
            Regex regex = new Regex(@"^[-+]?[0-9]*\.?[0-9]+$");
            return regex.IsMatch(pText);
        }

        private string catchuoi(string chuoi)
        {
            while (chuoi.Contains("  "))
            {
                chuoi = chuoi.Replace("  ", " ");
            }
            return chuoi;
        }

        private void btnthemnxb_Click(object sender, EventArgs e)
        {
            if ("".Equals(txttennxb.Text) || "".Equals(txtsdt.Text) || "".Equals(txtdiachi.Text) || "".Equals(txtemail.Text))
                MessageBox.Show("Thông tin chưa đầy đủ", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
            else
            {
                if (!IsNumber(txtsdt.Text) || txtsdt.Text.Length > 11)
                    MessageBox.Show("'Số điện thoại' phải là số và ít hơn 11 số", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                else
                {
                    BIZ_nhaxuatban nxb = new BIZ_nhaxuatban();
                    nxb.manhaxuatban = int.Parse(txtmanxb.Text);
                    nxb.tennhaxuatban = txttennxb.Text.Trim();
                    nxb.tennhaxuatban = catchuoi(nxb.tennhaxuatban);
                    nxb.diachi = txtdiachi.Text.Trim();
                    nxb.sodienthoai = txtsdt.Text.Trim();
                    nxb.email = txtemail.Text.Trim();
                    if (BIZ_nhaxuatban.kiemtratrungtennxb(nxb))
                        MessageBox.Show("Nhà xuất bản đã '" + nxb.tennhaxuatban + "' tồn tại", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    else
                    {
                        BIZ_nhaxuatban.Them_NhaXuatBan(nxb);
                        MessageBox.Show("Thêm thành công");
                        dataGridView_NXB.Rows.Clear();
                        List<BIZ_nhaxuatban> ds = BIZ_nhaxuatban.Select_NhaXuatBan();
                        foreach (BIZ_nhaxuatban n in ds)
                        {
                            dataGridView_NXB.Rows.Add(n.manhaxuatban, n.tennhaxuatban, n.diachi, n.sodienthoai, n.email);
                        }
                        txtmanxb.Text = BIZ_nhaxuatban.laymanhaxuatban().ToString();
                        txttennxb.Text = "";
                        txtdiachi.Text = "";
                        txtsdt.Text = "";
                        txtemail.Text = "";
                        btnthemnxb.Enabled = true;
                    }
                }
            }
        }

        private void btnsuanxb_Click(object sender, EventArgs e)
        {
            if ("".Equals(txttennxb.Text) || "".Equals(txtsdt.Text) || "".Equals(txtdiachi.Text) || "".Equals(txtemail.Text))
                MessageBox.Show("Thông tin chưa đầy đủ", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
            else
            {
                if (!IsNumber(txtsdt.Text) || txtsdt.Text.Length > 11)
                    MessageBox.Show("'Số điện thoại' phải là số và ít hơn 11 số", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                else
                {
                    BIZ_nhaxuatban nxb = new BIZ_nhaxuatban();
                    nxb.manhaxuatban = int.Parse(txtmanxb.Text);
                    nxb.tennhaxuatban = txttennxb.Text.Trim();
                    nxb.tennhaxuatban = catchuoi(nxb.tennhaxuatban);
                    nxb.diachi = txtdiachi.Text.Trim();
                    nxb.sodienthoai = txtsdt.Text.Trim();
                    nxb.email = txtemail.Text.Trim();
                    if (BIZ_nhaxuatban.kiemtratrungtennxb(nxb))
                        MessageBox.Show("Nhà xuất bản đã '" + nxb.tennhaxuatban + "' tồn tại", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    else
                    {
                        BIZ_nhaxuatban.Sua_NhaXuatBan(nxb);
                        MessageBox.Show("Sửa thành công");
                        dataGridView_NXB.Rows.Clear();
                        List<BIZ_nhaxuatban> ds = BIZ_nhaxuatban.Select_NhaXuatBan();
                        foreach (BIZ_nhaxuatban n in ds)
                        {
                            dataGridView_NXB.Rows.Add(n.manhaxuatban, n.tennhaxuatban, n.diachi, n.sodienthoai, n.email);
                        }
                        txtmanxb.Text = BIZ_nhaxuatban.laymanhaxuatban().ToString();
                        txttennxb.Text = "";
                        txtdiachi.Text = "";
                        txtsdt.Text = "";
                        txtemail.Text = "";
                        btnthemnxb.Enabled = true;
                    }
                }
            }
        }

        private void btnlammoi_Click(object sender, EventArgs e)
        {
            txttennxb.Text = "";
            txtdiachi.Text = "";
            txtsdt.Text = "";
            txtemail.Text = "";
            txtmanxb.Text = BIZ_nhaxuatban.laymanhaxuatban().ToString();
            btnthemnxb.Enabled = true;
            btnsuanxb.Enabled = false;
            btnxoa.Enabled = false;
        }

        private void textBox_searchnxb_KeyPress(object sender, KeyPressEventArgs e)
        {
            string s = txtimkiem.Text;
            dataGridView_NXB.Rows.Clear();
            List<BIZ_nhaxuatban> ds = BIZ_nhaxuatban.Search_NhaXuatBan(s);
            foreach (BIZ_nhaxuatban n in ds)
            {
                dataGridView_NXB.Rows.Add(n.manhaxuatban, n.tennhaxuatban, n.diachi, n.sodienthoai, n.email);
            }
        }

        private void dataGridView_NXB_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            btnthemnxb.Enabled = false;
            btnsuanxb.Enabled = true;
            btnxoa.Enabled = true;
            txtmanxb.Text = dataGridView_NXB.CurrentRow.Cells[0].Value.ToString().Trim();
            txttennxb.Text = dataGridView_NXB.CurrentRow.Cells[1].Value.ToString().Trim();
            txtdiachi.Text = dataGridView_NXB.CurrentRow.Cells[2].Value.ToString().Trim();
            txtsdt.Text = dataGridView_NXB.CurrentRow.Cells[3].Value.ToString().Trim();
            txtemail.Text = dataGridView_NXB.CurrentRow.Cells[4].Value.ToString().Trim();
        }

        private void btndong_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnxoa_Click(object sender, EventArgs e)
        {
            BIZ_nhaxuatban nxb = new BIZ_nhaxuatban();
            nxb.tennhaxuatban = txttennxb.Text;
            nxb.manhaxuatban = int.Parse(txtmanxb.Text);
            if (!BIZ_nhaxuatban.kiemtraxoa(nxb))
            {
                MessageBox.Show("Không được xóa!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                if (MessageBox.Show("Bạn có muốn xóa nhà xuất bản " + nxb.tennhaxuatban + " có mã là " + nxb.manhaxuatban + " không?", "Thông Báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    BIZ_nhaxuatban.Xoa_nhaxuatban(nxb);
                    MessageBox.Show("Xóa thành công", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
        }
    }
}
